package edu.ec.java02.group02.mapper;


import edu.ec.java02.group02.common.base.mapper.BaseMapper;
import edu.ec.java02.group02.domain.ProductInfo;
import edu.ec.java02.group02.util.Page;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface ProductInfoMapper extends BaseMapper<ProductInfo> {
    public List<ProductInfo> selectListPro(String str);
    public List<ProductInfo> selectListProType(String str);


    List<ProductInfo> getProductByType(String type);

    /**
     * 查询全部的商品信息
     * @return 商品信息-list
     */
    List<ProductInfo> selectProductAll();

    /**
     * 查询商品信息-分页
     * @param page
     * @return
     */
    List<ProductInfo> selectProductPage(Page page);

    /**
     * 查询商品信息分页的总数（含查询后的总数）
     * @param page
     * @return
     */
    Integer selectProductListPageCount(Page page);

    /**
     * 通过Id查询商品信息
     * @param productId
     * @return 商品信息-ProductInfo对象
     */
    ProductInfo selectProductById(int productId);

    /**
     * 上架商品信息
     * @param productInfo
     * @return 1-添加成功 <br> 0-添加失败
     */
    int insertProduct(ProductInfo productInfo);

    /**
     * 修改商品信息
     * @param productInfo
     * @return
     */
    int updateProduct(ProductInfo productInfo);

    /**
     * 修改商品信息(不包含图片)
     * @param productInfo
     * @return
     */
    int updateProductNoImage(ProductInfo productInfo);

    /**
     * 通过id对商品进行下架或上架
     * @param productInfo
     * @return
     */
    int updateProductState(ProductInfo productInfo);

    /**
     * 通过id对商品的销售数量进行修改
     * @param productInfo
     * @return
     */
    int updateProductSaleCount(ProductInfo productInfo);

    /**
     * 通过id删除商品信息
     * @param productId
     * @return
     */
    int deleteProduct(int productId);
}